Trigger single-turn prompt test run
curl --request POST \
--url https://api.getmaxim.ai/v1/test-runs/single-turn/prompt \
--header 'Content-Type: application/json' \
--header 'x-maxim-api-key: <api-key>' \
--data '
{
"workspaceId": "<string>",
"datasetId": "<string>",
"datasetSplitId": "<string>",
"evaluators": [
{
"id": "<string>",
"name": "<string>",
"variableMapping": {}
}
],
"contextToEvaluate": [
{
"payload": "<string>"
}
],
"promptVersionId": "<string>",
"promptVersionIds": [
"<string>"
]
}
'import requests
url = "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt"
payload = {
"workspaceId": "<string>",
"datasetId": "<string>",
"datasetSplitId": "<string>",
"evaluators": [
{
"id": "<string>",
"name": "<string>",
"variableMapping": {}
}
],
"contextToEvaluate": [{ "payload": "<string>" }],
"promptVersionId": "<string>",
"promptVersionIds": ["<string>"]
}
headers = {
"x-maxim-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-maxim-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
datasetId: '<string>',
datasetSplitId: '<string>',
evaluators: [{id: '<string>', name: '<string>', variableMapping: {}}],
contextToEvaluate: [{payload: '<string>'}],
promptVersionId: '<string>',
promptVersionIds: ['<string>']
})
};
fetch('https://api.getmaxim.ai/v1/test-runs/single-turn/prompt', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => '<string>',
'datasetId' => '<string>',
'datasetSplitId' => '<string>',
'evaluators' => [
[
'id' => '<string>',
'name' => '<string>',
'variableMapping' => [
]
]
],
'contextToEvaluate' => [
[
'payload' => '<string>'
]
],
'promptVersionId' => '<string>',
'promptVersionIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-maxim-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-maxim-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getmaxim.ai/v1/test-runs/single-turn/prompt")
.header("x-maxim-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmaxim.ai/v1/test-runs/single-turn/prompt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-maxim-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"workspaceId": "<string>",
"status": "<string>",
"entityType": "<string>",
"createdAt": "<string>",
"entityId": "<string>"
}
}Test run
Trigger single-turn prompt test run
Trigger a single-turn prompt test run (single or comparison).
POST
/
v1
/
test-runs
/
single-turn
/
prompt
Trigger single-turn prompt test run
curl --request POST \
--url https://api.getmaxim.ai/v1/test-runs/single-turn/prompt \
--header 'Content-Type: application/json' \
--header 'x-maxim-api-key: <api-key>' \
--data '
{
"workspaceId": "<string>",
"datasetId": "<string>",
"datasetSplitId": "<string>",
"evaluators": [
{
"id": "<string>",
"name": "<string>",
"variableMapping": {}
}
],
"contextToEvaluate": [
{
"payload": "<string>"
}
],
"promptVersionId": "<string>",
"promptVersionIds": [
"<string>"
]
}
'import requests
url = "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt"
payload = {
"workspaceId": "<string>",
"datasetId": "<string>",
"datasetSplitId": "<string>",
"evaluators": [
{
"id": "<string>",
"name": "<string>",
"variableMapping": {}
}
],
"contextToEvaluate": [{ "payload": "<string>" }],
"promptVersionId": "<string>",
"promptVersionIds": ["<string>"]
}
headers = {
"x-maxim-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-maxim-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
datasetId: '<string>',
datasetSplitId: '<string>',
evaluators: [{id: '<string>', name: '<string>', variableMapping: {}}],
contextToEvaluate: [{payload: '<string>'}],
promptVersionId: '<string>',
promptVersionIds: ['<string>']
})
};
fetch('https://api.getmaxim.ai/v1/test-runs/single-turn/prompt', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => '<string>',
'datasetId' => '<string>',
'datasetSplitId' => '<string>',
'evaluators' => [
[
'id' => '<string>',
'name' => '<string>',
'variableMapping' => [
]
]
],
'contextToEvaluate' => [
[
'payload' => '<string>'
]
],
'promptVersionId' => '<string>',
'promptVersionIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-maxim-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getmaxim.ai/v1/test-runs/single-turn/prompt"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-maxim-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getmaxim.ai/v1/test-runs/single-turn/prompt")
.header("x-maxim-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmaxim.ai/v1/test-runs/single-turn/prompt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-maxim-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"datasetId\": \"<string>\",\n \"datasetSplitId\": \"<string>\",\n \"evaluators\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"variableMapping\": {}\n }\n ],\n \"contextToEvaluate\": [\n {\n \"payload\": \"<string>\"\n }\n ],\n \"promptVersionId\": \"<string>\",\n \"promptVersionIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"workspaceId": "<string>",
"status": "<string>",
"entityType": "<string>",
"createdAt": "<string>",
"entityId": "<string>"
}
}Authorizations
API key for authentication
Body
application/json
Payload for triggering a single-turn prompt test run or comparison run
Workspace ID where the test run will execute
Dataset ID to use for the test run
Optional dataset split ID
Array of evaluators with optional variable mapping to run on the test results.
Show child attributes
Show child attributes
Context sources to include in evaluation
Show child attributes
Show child attributes
Prompt version ID to run for single run
Prompt version IDs to run for comparison
Minimum array length:
2Response
Single-turn prompt test run triggered successfully
Response from triggering a simulation
Show child attributes
Show child attributes
Was this page helpful?
⌘I